package com.xiyuan.smartutils.constants;


/**
 * 符号常量定义
 *
 * @version v1.0.0 @author lgz 2017-8-27 新建与整理
 */

@SuppressWarnings({"DanglingJavadoc",
                   "AlibabaAvoidStartWithDollarAndUnderLineNaming",
                   "SpellCheckingInspection",
                   "AlibabaConstantFieldShouldBeUpperCase"})
public interface SignConstants extends StringConstants
{
   
    /****************************************************************************/
    //ID定义，13/16/19位
    /****************************************************************************/
    
    /** 13位数字 */
    public static final long ID13                            = 1000000000000L;
    
    /** 16位数字 */
    public static final long ID16                            = ID13 * 1000;
    
    /** 19位数字 */
    public static final long ID19                            = ID16 * 1000;
    
    /****************************************************************************/
    //字节长度定义，注意KiB和KB的区别
    /****************************************************************************/
    
    /** 千字节（kibibyte） */
    public static final int KiB                              = 1024;
    
    /** 兆字节（mebibyte） */
    public static final int MiB                              = 1 << 20;
    
    /** 吉字节（gibibyte） */
    public static final int GiB                              = 1 << 30;
    
    /** 太字节（tebibyte） */
    public static final long TiB                             = 1L << 40;
    
    /** 拍字节 PetaByte */
    public static final long PiB                             = 1L << 50;
    
    /** 艾字节 ExaByte */
    public static final long EiB                             = 1L << 60;

//    /** ZettaByte */
//    public static final long ZiB                             = 1L << 70;
//
//    /** YottaByte */
//    public static final long YiB                             = 1L << 80;

    /** 千字节（kilobyte） */
    public static final int KB                               = 1000;
    
    /** 百万字节（megabyte） */
    public static final int MB                               = KB * 1000;
    
    /** 十亿字节（gigabyte） */
    public static final int GB                               = MB * 1000;
    
    /** 万亿字节（terabyte） */
    public static final long TB                              = GB * 1000L;
    
    /** 千万亿字节（petabyte） */
    public static final long PB                              = TB * 1000;
    
    /** 百亿亿字节（exabyte） */
    public static final long EB                              = PB * 1000;
    
    /** 十万亿亿字节（zettabyte） */
    public static final long ZB                              = EB * 1000L;
    
    /** 亿亿亿字节（yottabyte） */
    public static final long YB                              = ZB * 1000;
    
    /** 无究数（-1） */
    public static final int INFINITE                         = -1;
    
    /****************************************************************************/
    //常用字符串定义
    /****************************************************************************/
    
    /** true字符串 */
    public static final String _TRUE_                        = "true";
    
    /** false字符串 */
    public static final String _FALSE_                       = "false";
    
    /** 空字符串 */
    public static final String _EMPTY_                       = "";
    
    /** 一个空格字符串，也可以直接使用_SPACE_ */
    public static final String _ONE_SPACE_                   = " ";
    
    /** 双空格字符串 */
    public static final String _TWO_SPACE_                   = "  ";
    
    /** 四空格字符串 */
    public static final String _FOUR_SPACE_                  = "    ";
    
    /** 制表符 */
    public static final String _TAB_                         = "\t";
    
    /** 回车符 */
    public static final String _LR_                          = "\r";
    
    /** 换行符 */
    public static final String _LN_                          = "\n";
    
    /** 回车换行 */
    public static final String _BR_                          = "\r\n";
    
    /** 只读 */
    public static final String _RO_                          = "r";
    
    /** 读写 */
    public static final String _RW_                          = "rw";
    
    /** ID */
    public static final String _ID_                          = "id";
    
    /** 名称 */
    public static final String _NAME_                        = "name";
    
    /** 键 */
    public static final String _KEY_                         = "key";
    
    /** 字段 */
    public static final String _FIELD_                       = "field";
    
    /** 值 */
    public static final String _VALUE_                       = "value";
    
    /** 类型 */
    public static final String _TYPE_                        = "type";
    
    /** 页 */
    public static final String _PAGE_                        = "page";
    
    /** 版本 */
    public static final String _VERSION_                     = "version";
    
    /** 类 */
    public static final String _CLASS_                       = "class";
    
    /** 类路径 */
    public static final String _CLASSPATH_                   = "classpath";
    
    /** 目录 */
    public static final String _DIRECTORY_                   = "directory";
    
    /** 源 */
    public static final String _SRC_                         = "src";
    
    /** 目标 */
    public static final String _DST_                         = "dst";
    
    /** 编码 */
    public static final String _ENCODING_                    = "encoding";
    
    /** 字符集 */
    public static final String _CHARSET_                     = "charset";
    
    /** 输入 */
    public static final String _INPUT_                       = "input";
    
    /** 输出 */
    public static final String _OUTPUT_                      = "output";
    
    /** 常用的PNG类型 */
    public static final String _PNG_                         = "png";
    
    /** 公开 */
    public static final String _PUBLIC_                      = "public";
    
    /** 保护 */
    public static final String _PROTECTED_                   = "protected";
    
    /** 私有 */
    public static final String _PRIVATE_                     = "private";
    
    /** 整型 */
    public static final String _INT_                         = "int";
    
    /** 长整型 */
    public static final String _LONG_                        = "long";
    
    /** 浮点型 */
    public static final String _FLOAT_                       = "float";
    
    /** 双点型 */
    public static final String _DOUBLE_                      = "double";
    
    /** Socket关闭 */
    public static final String _SOCKET_CLOSED_               = "Socket closed";
    
    /****************************************************************************/
    //常用字符组合定义
    /****************************************************************************/
    /** '0' = 48 */
    public static final String _0_S_                         = "0";

    /** '1' = 49 */
    public static final String _1_S_                         = "1";

    /** '2' = 50 */
    public static final String _2_S_                         = "2";

    /** '3' = 51 */
    public static final String _3_S_                         = "3";

    /** '4' = 52 */
    public static final String _4_S_                         = "4";

    /** '5' = 53 */
    public static final String _5_S_                         = "5";

    /** '6' = 54 */
    public static final String _6_S_                         = "6";

    /** '7' = 55 */
    public static final String _7_S_                         = "7";

    /** '8' = 56 */
    public static final String _8_S_                         = "8";

    /** '9' = 57 */
    public static final String _9_S_                         = "9";

    public static final String _A_S_                         = "A";
    public static final String _B_S_                         = "B";
    public static final String _C_S_                         = "C";
    public static final String _D_S_                         = "D";
    public static final String _E_S_                         = "E";
    public static final String _F_S_                         = "F";
    public static final String _G_S_                         = "G";
    public static final String _H_S_                         = "H";
    public static final String _I_S_                         = "I";
    public static final String _J_S_                         = "J";
    public static final String _K_S_                         = "K";
    public static final String _L_S_                         = "L";
    public static final String _M_S_                         = "M";
    public static final String _N_S_                         = "N";
    public static final String _O_S_                         = "O";
    public static final String _P_S_                         = "P";
    public static final String _Q_S_                         = "Q";
    public static final String _R_S_                         = "R";
    public static final String _S_S_                         = "S";
    public static final String _T_S_                         = "T";
    public static final String _U_S_                         = "U";
    public static final String _V_S_                         = "V";
    public static final String _W_S_                         = "W";
    public static final String _X_S_                         = "X";
    public static final String _Y_S_                         = "Y";
    public static final String _Z_S_                         = "Z";
    
    
    /** 数字 */
    public static final String _DIGITS_                      = "0123456789";
    
    /** 十六进制数字 */
    public static final String _DIGITS_HEX_                  = "0123456789abcdefABCDEF";
    
    /** 小写字母 */
    public static final String _LETTERS_LOWERCASE_           = "abcdefghijklmnopqrstuvwxyz";
    
    /** 大写字母 */
    public static final String _LETTERS_UPPERCASE_           = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
    /**  小写字母+数字 */
    public static final String _LETTERS_LOWERCASE_DIGITS_    = "0123456789abcdefghijklmnopqrstuvwxyz";

    /** 大写字母+数字 */
    public static final String _LETTERS_UPPERCASE_DIGITS_    = _LETTERS_UPPERCASE_ + _DIGITS_;
    
    /** 全部字母 */
    public static final String _LETTERS_                     = _LETTERS_UPPERCASE_ + _LETTERS_LOWERCASE_;

    /** 全部字母数字 */
    public static final String _LETTERS_DIGITS_              = _LETTERS_UPPERCASE_ + _DIGITS_ + _LETTERS_LOWERCASE_;
    
    /** 电话号码里允许的不是数字的chars ,两边括号,横线,空格*/
    public static final String _PHONE_NUMBER_DELIMITERS_     = "+()- ";
    
    /** 全球电话号码允许"+"号的chars*/
    public static final String _PHONE_NUMBER_CHARS           = _PHONE_NUMBER_DELIMITERS_ + _DIGITS_;
    
    /** 常用于账号和密码的9个特殊字符 */
    public static final String _SYMBOL_F_                   = ".`_~!@#$%";
    
    /****************************************************************************/
    //常用数组定义，更多的定义在EnumConstants中
    /****************************************************************************/
    
    /** 空字节数组 */
    public static final byte[] _EMPTY_B_                    = {};
    
    /** 空整型数组 */
    public static final int[] _EMPTY_I_                     = {};
    
    /** 空整型数组 */
    public static final long[] _EMPTY_L_                    = {};
    
    /** 空字符串数组 */
    public static final String[] _EMPTY_S_                  = {};
    
    /** 回车换行字节数组 */
    public static final byte[] _CRLF_                       = {_CR_, _LF_};
    
    

}
